﻿/*
 * 负责处理用户注册的js文件
 * 
 * Created by zhouych on 11/04/2011
 */

/*
 * 1) promptMsg - 提示
 * 2) promptMsg2 - 错误提示
 * 3) promptMsg3 - 正确提示
 */
/*
 * 当焦点在控件上时触发事件
 */
function focustoRemind(objid) {
	
    // 当焦点在用户名
    if (objid == "TextBox_LoginName") {
    	$("#loginid_info").addClass("promptMsg").removeClass("promptMsg2").removeClass("promptMsg3");
    	$("#loginid_info").html("由4-15个字母或数字组成，不支持中文，不区分大小写");
        return;
    }

    // 当焦点在密码
    if (objid == "TextBox_PWD") {
    	$("#password_info").addClass("promptMsg").removeClass("promptMsg2").removeClass("promptMsg3");
    	$("#password_info").html("6-20个字母或数字组成，区分大小写");
        return;
    }

    // 当焦点在密码确认
    if (objid == "TextBox_PWDConfirm") {
    	$("#confirm_password_info").addClass("promptMsg").removeClass("promptMsg2").removeClass("promptMsg3");
    	$("#confirm_password_info").html("请再次输入您的密码");
        return;
    }
    
    // 当焦点邮箱
    if (objid == "TextBox_Email") {
    	$("#email_info").addClass("promptMsg").removeClass("promptMsg2").removeClass("promptMsg3");
    	$("#email_info").html("电子邮箱是您取回密码的重要途径");
        return;
    }
    
    // 当焦点验证码
    if (objid == "TextBox_CheckCode") {
    	$("#validate_code_info").addClass("promptMsg").removeClass("promptMsg2").removeClass("promptMsg3");
    	$("#validate_code_info").html("请输入右边提示的验证码");
        return;
    }
}

/*
 * 当焦点离开控件时触发事件
 */
function blurtoRemind(objid) {
	
    // 当焦点离开用户名
    if (objid == "TextBox_LoginName") {
        errorCode = validateUsername(document.getElementById(objid));
        if (errorCode == 0) {
            ajaxValidName();
            return;
        } else{
        	$("#loginid_info").addClass("promptMsg2").removeClass("promptMsg").removeClass("promptMsg3");
        	$("#loginid_info").html("用户名应由4-15个字母或数字组成，不支持中文，不区分大小写");
            return;
        }
    }

    // 当焦点离开密码
    if (objid == "TextBox_PWD") {
        errorCode = validatePassword(document.getElementById(objid));
        if (errorCode == 0) {
        	$("#password_info").addClass("promptMsg3").removeClass("promptMsg").removeClass("promptMsg2");
        	$("#password_info").html("填写正确");
            return;
        } else if (errorCode == 2) {
//        	$("#password_info").addClass("promptMsg2").removeClass("promptMsg").removeClass("promptMsg3");
//        	$("#password_info").html("密码不能与用户名相同");
            return;
        } else if (errorCode == 3) {
//        	$("#password_info").addClass("promptMsg2").removeClass("promptMsg").removeClass("promptMsg3");
//        	$("#password_info").html("密码不能使用连续数字");
            return;
        } else if (errorCode == 4 || errorCode == 6) {
        	$("#password_info").addClass("promptMsg2").removeClass("promptMsg").removeClass("promptMsg3");
        	$("#password_info").html("密码应由6-20个字母或数字组成，区分大小写");
            return;
        }
    }

    // 当焦点离开重输密码
    if (objid == "TextBox_PWDConfirm") {
        errorCode = validateSafePassword(document.getElementById(objid));
        if (errorCode == 0) {
        	$("#confirm_password_info").addClass("promptMsg3").removeClass("promptMsg").removeClass("promptMsg2");
        	$("#confirm_password_info").html("填写正确");
            return;
        } else if (errorCode == 1) {
        	$("#confirm_password_info").addClass("promptMsg2").removeClass("promptMsg").removeClass("promptMsg3");
        	$("#confirm_password_info").html("密码应由6-20个字母或数字组成，区分大小写");
            return;
        } else if (errorCode == 2) {
        	$("#confirm_password_info").addClass("promptMsg2").removeClass("promptMsg").removeClass("promptMsg3");
        	$("#confirm_password_info").html("两次输入的密码不相同");
            return;
        } else if (errorCode == 3) {
//        	$("#confirm_password_info").addClass("promptMsg2").removeClass("promptMsg").removeClass("promptMsg3");
//        	$("#confirm_password_info").html("密码不能与用户名相同");
        	return;
        }
    }

    // 当焦点离开邮箱
    if (objid == "TextBox_Email") {
        errorCode = validateEmail(document.getElementById(objid));
        if (errorCode == 0) {
            ajaxValidEmail();
            return;
        } else if (errorCode == 1) {
        	$("#email_info").addClass("promptMsg2").removeClass("promptMsg").removeClass("promptMsg3");
        	$("#email_info").html("电子邮件格式不正确");
            return;
        }
    }
    
    // 当焦点离开验证码
    if (objid == "TextBox_CheckCode") {
    	ajaxValidCheckcode();
    	return;
    }
}

function ajaxValidName() {
    
    var nameVal = $("#TextBox_LoginName").val();
    if (nameVal.length <= 0) {
    	$("#loginid_info").addClass("promptMsg2").removeClass("promptMsg").removeClass("promptMsg3");
        $("#loginid_info").html("请输入用户名");
        return false;
    }
    
    $.ajax({
		type:		"POST",
		url:		"ajax/validate/loginname",
		data:		"loginName=" + nameVal,
		dataType:	"text",
		success:	function(data) {
    					if (data.length > 1) {
    						$("#loginid_info").addClass("promptMsg2").removeClass("promptMsg").removeClass("promptMsg3");
    						$("#loginid_info").html("该用户名已被注册");
    						return false;
    					} else {
    						$("#loginid_info").addClass("promptMsg3").removeClass("promptMsg").removeClass("promptMsg2");;
    						$("#loginid_info").html("该用户名可用");
    						return true;
    					}
					}
	});
}

function ajaxValidEmail() {

    var nameVal = $("#TextBox_Email").val();
    if (nameVal.length <= 0) {
    	$("#email_info").addClass("promptMsg2").removeClass("promptMsg").removeClass("promptMsg3");
    	$("#email_info").html("请输入电子邮箱");
        return false;
    }

    $.ajax({
		type:		"POST",
		url:		"ajax/validate/email",
		data:		"email=" + nameVal,
		dataType:	"text",
		success:	function(data) {
    					if (data.length > 1) {
    						$("#email_info").addClass("promptMsg2").removeClass("promptMsg").removeClass("promptMsg3");
    						$("#email_info").html("该电子邮箱已被注册");
    						return false;
    					} else {
    						$("#email_info").addClass("promptMsg3").removeClass("promptMsg").removeClass("promptMsg2");
    						$("#email_info").html("该电子邮箱可用");
    						return true;
    					}
					}
	});
}

function ajaxValidCheckcode() {
    
    var codeVal = $("#TextBox_CheckCode").val();
    if (codeVal.length <= 0) {
    	$("#validate_code_info").addClass("promptMsg2").removeClass("promptMsg").removeClass("promptMsg3");
        $("#validate_code_info").html("请输入验证码");
        return false;
    }
    
    $.ajax({
		type:		"POST",
		url:		"ajax/validate/checkcode",
		data:		"checkcode=" + codeVal,
		dataType:	"text",
		success:	function(data) {
    					if (data) {
    						$("#validate_code_info").addClass("promptMsg2").removeClass("promptMsg").removeClass("promptMsg3");
    						$("#validate_code_info").html("验证码错误");
    						return false;
    					} else {
    						$("#validate_code_info").addClass("promptMsg3").removeClass("promptMsg").removeClass("promptMsg2");
    						$("#validate_code_info").html("验证码正确");
    						return true;
    					}
					}
	});
}

/*
 * 检查用户名输入是否符合格式要求
 */
function validateUsername(obj) {
    var str = obj.value;
    var patn = /^[a-zA-Z0-9]+$/;
    var path2 = /^[0-9]+$/;
    if (!checkByteLength(str, 4, 15)) return 1;
    if (!patn.test(str)) {
        return 1;
    }
    if (path2.test(str)) {
        return 1;
    }
    return 0;
}

/*
 * 验证邮箱是否正确
 */
function validateEmail(obj) {
    var str = obj.value;

    // 邮箱必须在1~50个字符之间
    if (!checkByteLength(str, 1, 50)) {
    	return 1;
    }
    var patn = /^\w[-._\w]*\w@\w[-._\w]*\w\.\w{2,6}$/;
    if (patn.test(str)) {
        return 0;
    } else {
        return 1;
    }
}

/*
 * 检测输入的密码是否正确
 */
function validatePassword(obj) {
    var str = obj.value;
    // 如果密码长度不在6~20位之间
    if (!checkByteLength(str, 6, 20)) {
    	return 6;
    }
    // 如果密码与用户名一致，也不允许
//    if (str == $("#TextBox_LoginName").val()) {
//    	return 2;
//    }
    // 不允许密码是连续数字
//    if (isNumberContinue(str) == 1) {
//    	return 3;
//    }
    // 不允许密码是同样字母
//    if (isSameLetter(str) == 1) {
//    	return 4;
//    }
    return 0;
}

/*
 * 确认重新输入密码
 */
function validateSafePassword(obj) {
    var str = obj.value;
    // 如果密码长度不在6~20位之间
    if (!checkByteLength(str, 6, 20)) {
    	return 1;
    }
    // 如果重新输入密码与上面的不同
    if (str != $("#TextBox_PWD").val()) {
    	return 2;
    }
    return 0;
}

/*
 * 在提交表单之前对所有的进行检测
 */
function validateAll() {
	
    pass = true;
    var focusobj = "";
    var focuscount = 0;
    
    // 首先检测用户名
    errorCode = validateUsername($("#TextBox_LoginName"));
    if (errorCode == 0) {
    	ajaxValidName();
    } else {
    	$("#loginid_info").addClass("promptMsg2").removeClass("promptMsg").removeClass("promptMsg3");
    	$("#loginid_info").html("用户名应由4-15个字母或数字组成，不支持中文，不区分大小写");
    	focuscount = focuscount + 1;
    	if (focuscount == 1) {
    		focusobj = "TextBox_LoginName";
    	}
    	pass = false;
    }
    
    // 接着是邮箱
    errorCode = validateEmail($("#TextBox_Email"));
    if (errorCode == 0) {
        ajaxValidEmail();
    } else if (errorCode == 1) {
    	$("#email_info").addClass("promptMsg2").removeClass("promptMsg").removeClass("promptMsg3");
    	$("#email_info").html("电子邮件格式不正确");
        focuscount = focuscount + 1;
        if (focuscount == 1) {
            focusobj = "TextBox_Email";
        }
        pass = false;
    }
    
    // 跟着检测密码
    errorCode = validatePassword($("#TextBox_PWD"));
    if (errorCode == 0) {
    	$("#password_info").addClass("promptMsg3").removeClass("promptMsg").removeClass("promptMsg2");
    	$("#password_info").html("填写正确");
    } else if (errorCode == 2) {
    	// 密码与用户名一致，不做任何动作
    } else if (errorCode == 3) {
    	// 密码采用连续数字，不做任何动作
    } else if (errorCode == 4 || errorCode == 6) {
    	$("#password_info").addClass("promptMsg2").removeClass("promptMsg").removeClass("promptMsg3");
    	$("#password_info").html("密码应由6-20个字母或数字组成，区分大小写");
    	focuscount = focuscount + 1;
        if (focuscount == 1) {
            focusobj = "TextBox_PWD";
        }
        pass = false;
    }
    
    // 再跟着是重复输入密码
    errorCode = validateSafePassword($("#TextBox_PWDConfirm"));
    if (errorCode == 0) {
    	$("#confirm_password_info").addClass("promptMsg3").removeClass("promptMsg").removeClass("promptMsg2");
    	$("#confirm_password_info").html("填写正确");
    } else if (errorCode == 1) {
    	$("#confirm_password_info").addClass("promptMsg2").removeClass("promptMsg").removeClass("promptMsg3");
    	$("#confirm_password_info").html("密码应由6-20个字母或数字组成，区分大小写");
    	focuscount = focuscount + 1;
        if (focuscount == 1) {
            focusobj = "TextBox_PWDConfirm";
        }
        pass = false;
    } else if (errorCode == 2) {
    	$("#confirm_password_info").addClass("promptMsg2").removeClass("promptMsg").removeClass("promptMsg3");
    	$("#confirm_password_info").html("两次输入的密码不相同");
    	focuscount = focuscount + 1;
        if (focuscount == 1) {
            focusobj = "TextBox_PWDConfirm";
        }
        pass = false;
    } else if (errorCode == 3) {
    	// 密码与用户名一致，不做任何动作
    }
    
    // 最后验证码不能为空
    if ($("#TextBox_CheckCode").val == "") {
    	$("#validate_code_info").addClass("promptMsg2").removeClass("promptMsg").removeClass("promptMsg3");
    	$("#validate_code_info").html("请填写验证码");
    	focuscount = focuscount + 1;
        if (focuscount == 1) {
            focusobj = "TextBox_CheckCode";
        }
        pass = false;
    }

    return pass;
}

/*
 * 
 *----------------------------分割线--------------------------------
 * 
 */


var frindname = '';
																	
// 检查敏感词
function checkDenyWords(content) {
    if (content == null || content.trim() == "") 
    	return "";
    var wordsArrays = new Array();
    wordsArrays = new Array("二手书");
    for(var k=0;k<wordsArrays.length;k++){
        if (content.indexOf(wordsArrays[k])!=-1){
            return wordsArrays[k];
        }
    }
    return "";
}

// default classes for infobox
var validatedInfo = "填写正确";

document.onkeydown = function(evnt) {
    if (isIE() && window.event.keyCode == 13) {
        document.getElementById("LinkButton_Sure").focus();
    }
}

function isIE() {
    if (document.all) return true;
    return false;
}

function getAttrName(str) {
    var s = str.split("=");
    return s[0];
}
function getAttrValue(str) {
    var s = str.split("=");
    return s[1];
}

function getMailServer(str) {
    // be sure str is a correct email address
    str = str.trim();
    return str.substr(str.indexOf("@") + 1);
}
String.prototype.trim = function() {
    return this.replace(/(^\s*)|(\s*$)/g, "");
}

var checkusername = true


function validateConfirmType1(obj) {
    var str = obj.value;
    if (str == '') {
        return 1;
    }
    return 0;
}

function validateConfirmMainpro(obj) {
    var str = obj.value;
    if (str == '') {
        return 1;
    }
    if (checkDenyWords(str) != "") {
        return 2;
    }
    return 0;
}


function validateNum(obj) {
    var str = obj.value;
    var patn = new RegExp("\\d{" + getAttrValueByName(obj, "minlen") + "," + getAttrValueByName(obj, "maxlen") + "}");
    if (patn.test(str)) return 0;
    return 1;
}
function validateMobile(obj) {
    var str1 = obj.value;
    var str = tot(str1);
    obj.value = str;
    if (str.length == 0) {
        return -1;
    }

    if (str.length != 11) {
        return 1;
    }

    var patn = /^[0-9]+$/;
    if (patn.test(str)) return 0;
    return 2;
}

function validatePhoneArea(obj) {
    var str1 = obj.value;
    var str = tot(str1);
    obj.value = str;
    if (str.length == 0) {
        return -1;
    }
    var patn = /^[0-9]+$/;
    if (!patn.test(str)) return 1;

    return validatePhone();
    // return validatePhone();
}

function validateNumber(obj) {
    var str1 = obj.value;
    var str = tot(str1);
    obj.value = str;
    if (str.length == 0) {
        return -1;
    }
    var patn = /^[0-9-\/]+$/;
    if (!patn.test(str)) return 1;
    return 0;
}






function validateFirstName(obj) {
    var str = obj.value;
    if (str.length > 30) {
        return 1;
    }

    if (str.length == 0) {
        return -1;
    }

    if (checkDenyWords(str) != "") {
        return 2;
    }
    return 0;
}



function setmainpage() {
    document.body.style.behavior = 'url(#default#homepage)';
    document.body.setHomePage('http://www.bookstore.com')
}

function bookmarkit() {
    window.external.addFavorite('http://www.bookstore.com', '大学生二手书平台')
}

// 提交表单
function submitForm(obj) {
    document.f1.ValidKey.value = tot(document.f1.ValidKey.value);
    // 记录来源URL
    var referUrl = document.referrer;
    document.f1.sourceurl.value = referUrl;
    document.f1.isSubmit.value = "1";
    if (document.f1.submitflag != null) {
        document.f1.submitflag.value = "1";
    }
    // var ret = validateAll(obj);
    var ret = validateAll()
    if (ret) {
        setmainpage();

        // if (document.form.eventSubmit_doPreview) {
        // document.form.eventSubmit_doPreview.disabled = true;
        // }
    } else {
        document.f1.isSubmit.value = "0";
        if (document.f1.submitflag != null) {
            document.f1.submitflag.value = "0";
        }
        return false;
    }
    return ret;
}


function checkByteLengthForPass(str, minlen, maxlen) {
    if (str.length > maxlen || str.length < minlen) {
        return false;
    }
    return true;
}

function checkByteLength(str, minlen, maxlen) {
    if (str == null) return false;
    var l = str.length;
    var blen = 0;
    for (i = 0; i < l; i++) {
        if ((str.charCodeAt(i) & 0xff00) != 0) {
            blen++;
        }
        blen++;
    }
    if (blen > maxlen || blen < minlen) {
        return false;
    }
    return true;
}

function tot(mobnumber) {
    while (mobnumber.indexOf("０") != -1) {
        mobnumber = mobnumber.replace("０", "0");
    }
    while (mobnumber.indexOf("１") != -1) {
        mobnumber = mobnumber.replace("１", "1");
    }
    while (mobnumber.indexOf("２") != -1) {
        mobnumber = mobnumber.replace("２", "2");
    }
    while (mobnumber.indexOf("３") != -1) {
        mobnumber = mobnumber.replace("３", "3");
    }
    while (mobnumber.indexOf("４") != -1) {
        mobnumber = mobnumber.replace("４", "4");
    }
    while (mobnumber.indexOf("５") != -1) {
        mobnumber = mobnumber.replace("５", "5");
    }
    while (mobnumber.indexOf("６") != -1) {
        mobnumber = mobnumber.replace("６", "6");
    }
    while (mobnumber.indexOf("７") != -1) {
        mobnumber = mobnumber.replace("７", "7");
    }
    while (mobnumber.indexOf("８") != -1) {
        mobnumber = mobnumber.replace("８", "8");
    }
    while (mobnumber.indexOf("９") != -1) {
        mobnumber = mobnumber.replace("９", "9");
    }
    return mobnumber;
}
function isNumberContinue(str) {
    var patn1 = /^[0-9_]+$/;
    var ascendNumber = 0;
    var descendNumber = 0;

    for (var i = 1; i < str.length; i++) {
        if (str.charAt(i).charCodeAt() != (str.charAt(i - 1).charCodeAt() + 1)) {
            ascendNumber = 1;
            break;
        }
    }

    for (i = 0; i < (str.length - 1); i++) {
        if (str.charAt(i).charCodeAt() != (str.charAt(i + 1).charCodeAt() + 1)) {
            descendNumber = 1;
            break;
        }
    }
    if (descendNumber == 0 || ascendNumber == 0) {
        return 1;
    } else {
        return 0;
    }
}

function isSameLetter(str) {
    var sameNumberFlag = 1;
    var patn1 = /^[0-9]+$/;
    if (patn1.test(str)) {
        for (var i = 0; i < str.length; i++) {
            if (str.charAt(0) != str.charAt(i)) {
                sameNumberFlag = 0;
                break;
            }
        }
    } else {
        for (var i = 0; i < str.length; i++) {
            if (str.charAt(0) != str.charAt(i)) {
                sameNumberFlag = 0;
                break;
            }
        }
    }
    return sameNumberFlag;
}

function isOnlyDigitOrChar(str) {
    var digit = /^\d+$/;
    var words = /^[a-zA-Z]+$/;
    if (digit.test(str) || words.test(str)) {
        return 1;
    } else {
        return 0;
    }
}